package top.szhome.develop.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import top.szhome.framework.starter.db.support.BaseEntity;

/**
 * 属性实体对象
 *
 * @author 唐加利
 * @date 2023/08/31
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_property")
public class Property extends BaseEntity {

    /**
     * 序列号
     */
    private static final long serialVersionUID = 1L;

    /**
     * 数据源
     */
    private Long datasourceId;

    /**
     * 所属模型
     */
    private Long modelId;

    /**
     * 列名
     */
    private String columnName;

    /**
     * 数据类型
     */
    private String columnType;

    /**
     * 是否可空
     */
    private Boolean columnNullable;

    /**
     * 字段长度
     */
    private Integer columnLength;

    /**
     * 字段精度
     */
    private Integer columnScale;

    /**
     * 默认值
     */
    private String columnDefaultValue;

//    /**
//     * 关联表
//     */
//    private String columnRelationTable;
//
//    /**
//     * 外键字段
//     */
//    private String columnRelationColumn;

    /**
     * 列注释
     */
    private String columnComment;

    /**
     * 字段名称
     */
    private String fieldName;

    /**
     * 字段标签
     */
    private String fieldLabel;

    /**
     * 字段类型
     */
    private String fieldType;

    /**
     * 取值字典
     */
    private String fieldDict;

    /**
     * 取值示例
     */
    private String fieldExample;

    /**
     * 字段说明
     */
    private String fieldRemark;

    /**
     * JavaScript类型
     */
    private String jsType;

    /**
     * 组件类型
     */
    private String jsComponent;

    /**
     * 列数
     */
    private Integer formSpan;

    /**
     * 查询
     */
    private Boolean formSearchShow;

    /**
     * 匹配模式
     */
    private String formSearchMatch;

    /**
     * 查询表单权重
     */
    private Integer formSearchSort;

    /**
     * 编辑表单顺序
     */
    private Integer formEditSort;

    /**
     * 新增
     */
    private Boolean formAddShow;

    /**
     * 编辑
     */
    private Boolean formEditShow;

    /**
     * 不可编辑
     */
    private Boolean formEditReadonly;

    /**
     * 列表展示
     */
    private Boolean tableShow;

    /**
     * 对齐方式
     */
    private String tableAlign;

    /**
     * 表格列宽
     */
    private String tableWidth;

    /**
     * 列冻结：left、right
     */
    private String fixed;

    /**
     * 溢出省略
     */
    private Boolean tableEllipsis;

    /**
     * 支持复制
     */
    private Boolean tableCopyable;

    /**
     * 校验规则
     */
    private String validateType;

    /**
     * 最小取值
     */
    private Integer validateValueMin;

    /**
     * 最大取值
     */
    private Integer validateValueMax;

    /**
     * 最小长度
     */
    private Integer validateLengthMin;

    /**
     * 最大长度
     */
    private Integer validateLengthMax;

    /**
     * 校验规则
     */
    private String validateRegex;

    /**
     * 排序
     */
    private Integer sort;

}
